1: | flatten(nil) | → nil | |
2: | flatten(unit(x)) | → flatten(x) | |
3: | flatten(x ++ y) | → flatten(x) ++ flatten(y) | |
4: | flatten(unit(x) ++ y) | → flatten(x) ++ flatten(y) | |
5: | flatten(flatten(x)) | → flatten(x) | |
6: | rev(nil) | → nil | |
7: | rev(unit(x)) | → unit(x) | |
8: | rev(x ++ y) | → rev(y) ++ rev(x) | |
9: | rev(rev(x)) | → x | |
10: | x ++ nil | → x | |
11: | nil ++ y | → y | |
12: | (x ++ y) ++ z | → x ++ (y ++ z) | |
13: | FLATTEN(unit(x)) | → FLATTEN(x) | |
14: | FLATTEN(x ++ y) | → flatten(x) ++# flatten(y) | |
15: | FLATTEN(x ++ y) | → FLATTEN(x) | |
16: | FLATTEN(x ++ y) | → FLATTEN(y) | |
17: | FLATTEN(unit(x) ++ y) | → flatten(x) ++# flatten(y) | |
18: | FLATTEN(unit(x) ++ y) | → FLATTEN(x) | |
19: | FLATTEN(unit(x) ++ y) | → FLATTEN(y) | |
20: | REV(x ++ y) | → rev(y) ++# rev(x) | |
21: | REV(x ++ y) | → REV(y) | |
22: | REV(x ++ y) | → REV(x) | |
23: | (x ++ y) ++# z | → x ++# (y ++ z) | |
24: | (x ++ y) ++# z | → y ++# z | |